home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / util / moni / Scout-src.lha / include / showpatch.h < prev    next >
C/C++ Source or Header  |  2002-09-16  |  3KB  |  73 lines

  1. #ifndef SHOWPATCH_H
  2. #define SHOWPATCH_H 1
  3.  
  4. /*************************************************
  5.  ** ShowPatch                                   **
  6.  **                                             **
  7.  ** Zeige die Patches und die Patcher von       **
  8.  ** Saferpatches.                               **
  9.  **     © 1994,97,99,2001 THOR-Software inc.    **
  10.  **     Version 2.23 vom 11.10.2001             **
  11.  *************************************************/
  12.  
  13. /*************************************************
  14.  ** PatchPort                                   **
  15.  **                                             **
  16.  ** Supervisor Port                             **
  17.  *************************************************/
  18. struct PatchPort {
  19.         struct MsgPort          pp_Port;                /* embedded port structure used for identification */
  20.         UWORD                   pp_Flags;               /* flags, see below */
  21.         APTR                    pp_RemoveProc;          /* not for public use */
  22.         APTR                    pp_OldSetFunction;      /* not for public use */
  23.         struct MinList          pp_PatchList;           /* embedded patch list */
  24.         struct SignalSemaphore  pp_Semaphore;           /* semaphore, not used */
  25. };
  26.  
  27. #define PPF_REMEMBER    (1<<0L)
  28.  
  29. #define PATCHPORT_NAME  "SaferPatches.rendezvous"
  30.  
  31. /*************************************************
  32.  ** LibPatchList                                **
  33.  *************************************************/
  34. struct LibPatchList {
  35.         struct LibPatchList     *ll_next,*ll_pred;      /* node fields */
  36.         void                    *ll_Root;               /* not used */
  37.         struct Library          *ll_LibBase;            /* library of this node */
  38.         struct MinList           ll_PatchList;          /* all patch nodes of this library */
  39. };
  40.  
  41. /*************************************************
  42.  ** LibPatchNode                                **
  43.  *************************************************/
  44. struct LibPatchNode {
  45.         struct LibPatchNode     *ln_next,*ln_pred;      /* node fields */
  46.         struct LibPatchList     *ln_Root;               /* thread field */
  47.         WORD                     ln_Offset;             /* patched offset */
  48.         WORD                     ln_reserved;           /* not used */
  49.         struct MinList           ln_PatchList;          /* all patch entries of this offset */
  50. };
  51.  
  52. /*************************************************
  53.  ** LibPatchEntry                               **
  54.  *************************************************/
  55. struct LibPatchEntry {
  56.         struct LibPatchEntry    *le_next,*le_pred;      /* node fields */
  57.         struct LibPatchNode     *le_Root;               /* thread field */
  58.         WORD                     le_Flags;              /* Flags, see below */
  59.         UWORD                    le_Jmp;                /* 0x4ef9: JMP-instructions */
  60.         void                    (*le_OldEntry)();       /* pointer to old function */
  61.         void                    (*le_NewEntry)();       /* new entry */
  62.         char                    *le_Patcher;            /* name of patching process */
  63.         void                    (*le_JumpBack)();       /* really old pointer */
  64.  
  65. };
  66.  
  67. #define LEF_REMOVED     (1<<1L)
  68. #define LEF_DISABLED    (1<<2L)
  69. #define LEF_SELECTED    (1<<8L)
  70.  
  71. #endif /* SHOWPATCH_H */
  72.  
  73.